/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._16_11;

import java.util.ArrayList;
import java.util.List;

/**
 * 你正在使用一堆木板建造跳水板。有两种类型的木板，其中长度较短的木板长度为shorter，长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法，生成跳水板所有可能的长度。
 * <p>
 * 返回的长度需要从小到大排列。
 * <p>
 * 示例：
 * <p>
 * 输入：
 * shorter = 1
 * longer = 2
 * k = 3
 * 输出： {3,4,5,6}
 * 提示：
 * <p>
 * 0 < shorter <= longer
 * 0 <= k <= 100000
 *
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._16_11
 * @ClassName: DivingBoard
 * @Author: linyaonan
 * @Date: 2020/4/3 15:49
 */
public class DivingBoard {

    public int[] divingBoard(int shorter, int longer, int k) {
        // 异常处理
        if (k == 0) {
            return new int[]{};
        }
        // 长板与短板一样长，则只有一种
        if (shorter == longer) {
            return new int[]{shorter * k};
        }
        int[] ints = new int[k + 1];
        int index = 0;
        for (int i = k; i >= 0; i--) {
            ints[index++] = (shorter * i) + (longer * (k - i));
        }
        return ints;
    }

}
